#ifndef COBJECTFACTORY_H_
#define COBJECTFACTORY_H_

#include <vector>

class CBaseObject;

class CObjectFactory
{
public:

	enum m_eObjectTypes {CBASEOBJECT, MAXOBJECTS};


private:

	CObjectFactory();
	~CObjectFactory();
	CObjectFactory(const CObjectFactory&);
	CObjectFactory& operator=(const CObjectFactory&);



	std::vector<CBaseObject*> m_vObjects;


public:

	static CObjectFactory* GetInstance();
	void StartUp(int allocateAmount = 500);
	void ShutDown();

	bool CreateObject(m_eObjectTypes type, bool isStaticObject);
	bool ReturnObject(CBaseObject* object);

};



#endif